import Mock from "mockjs";

const Random = Mock.Random;

// get请求从config.url获取参数，post从config.body中获取参数
function param2Obj(url) {
  const search = url.split("?")[1];
  if (!search) {
    return {};
  }
  return JSON.parse(
    '{"' +
      decodeURIComponent(search)
        .replace(/"/g, '\\"')
        .replace(/&/g, '","')
        .replace(/=/g, '":"') +
      '"}'
  );
}
let List = []
const count = 120
  for (let i = 0; i < count; i++) {
    const blog = {
      blog_id: Random.guid(),
      blog_title: Mock.mock("@ctitle"),
      blog_content: Mock.mock("@ctitle(100)"),
      user_id: Random.integer(1,count),
      cover_image: Random.image("200x200", Random.color()),
      created_at: Random.datetime(),
      updated_at: Random.datetime(),
    };
    List.push(blog);
  }
export default {
    getBlogList: config => {
        // 解析config.body，将其解析为JSON对象
        const body = JSON.parse(config.body);
        console.log(body)
        // 从请求的URL中解析出参数name、page、limit
        const { blog_id, page = config.body.page, limit = body.pageSize } = param2Obj(config.url);
        
        // 使用List数组的filter方法对博客进行筛选
        console.log(List)
        const mockList = List.filter(blog => {
          // 如果指定了blog_id参数，并且当前博客的名字中不包含name，则返回false
          if (blog_id && blog.blog_id.indexOf(blog_id) === -1) return false;
          return true;
        });
        
        // 使用filter和分页参数对mockList进行分页处理
        const pageList = mockList.filter((item, index) =>
          index < limit * page && index >= limit * (page - 1)
        );
        
        // 返回包含列表信息的对象
        return {
          code: 20000,
          count: mockList.length,
          list: pageList
        };
      },  
};
